package org.jeecg.modules.hc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.jeecg.modules.hc.controller.dao.CompanyOrderDao;
import org.jeecg.modules.hc.enums.HcMerchantSettlementTypeEnum;
import org.jeecg.modules.hc.enums.HcOrderStateEnum;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description: 企业订餐订单
 * @Author: jeecg-boot
 * @Date:   2023-07-11
 * @Version: V1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("hc_company_food_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="hc_company_food_order对象", description="企业订餐订单")
public class HcCompanyFoodOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    @ApiModelProperty(value = "导出开始时间")
    private String timeBegin;

    @TableField(exist = false)
    @ApiModelProperty(value = "勾选的id")
    private String selections;

    @TableField(exist = false)
    @ApiModelProperty(value = "导出结束时间")
    private String timeEnd;

    @TableField(exist = false)
    @ApiModelProperty(value = "订单开始日期")
    private Date minDate;

    @TableField(exist = false)
    @ApiModelProperty(value = "结算类型")
    private HcMerchantSettlementTypeEnum settlementType;

	/**id*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "id")
    private java.lang.String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**企业ID*/
	@Excel(name = "企业ID", width = 15)
    @ApiModelProperty(value = "企业ID")
    private java.lang.String companyId;
    /**企业名称*/
    @TableField(exist = false)
    private java.lang.String companyName;
	/**商户ID*/
	@Excel(name = "商户ID", width = 15)
    @ApiModelProperty(value = "商户ID")
    private java.lang.String merchantId;
    /**取餐时间*/
    @Excel(name = "取餐时间", width = 15)
    @ApiModelProperty(value = "取餐时间")
    private java.lang.String pickUpTime;
    /**
     * 是否导出
     */
    @ApiModelProperty(value = "是否导出")
    private java.lang.Integer exportFlag;
    /**商户名称*/
    @TableField(exist = false)
    private java.lang.String merchantName;
    @TableField(exist = false)
    private java.lang.String storeName;

    /**商户名称*/
    @TableField(exist = false)
    private HcMerchant hcMerchant;
	/**菜品Info*/
	@Excel(name = "菜品Info", width = 15)
    @ApiModelProperty(value = "菜品Info")
    private java.lang.String foodInfo;
    /**菜品名称*/
    @TableField(exist = false)
    private java.lang.String foodsName;
	/**菜品规格ID*/
	@Excel(name = "菜品规格ID", width = 15)
    @ApiModelProperty(value = "菜品规格ID")
    private java.lang.String foodsSpecificationId;
    /**菜品规格名称*/
    @TableField(exist = false)
    private java.lang.String foodsSpecificationName;

	/**订餐用户姓名*/
	@Excel(name = "订餐用户姓名", width = 15)
    @ApiModelProperty(value = "订餐用户姓名")
    private java.lang.String username;
	/**取餐地址ID*/
	@Excel(name = "取餐地址ID", width = 15)
    @ApiModelProperty(value = "取餐地址ID")
    private java.lang.String pickupAddressId;
    /**取餐地址*/
    @TableField(exist = false)
    private java.lang.String pickupAddress;
    /**取餐地址代号*/
    @TableField(exist = false)
    private java.lang.String addressCode;

	/**公司部门ID*/
	@Excel(name = "公司部门ID", width = 15)
    @ApiModelProperty(value = "公司部门ID")
    private java.lang.String departmentId;
    /**公司部门*/
    @TableField(exist = false)
    private java.lang.String department;
	/**删除状态*/
	@Excel(name = "删除状态", width = 15)
    @ApiModelProperty(value = "删除状态")
    @TableLogic(value = "0",delval = "1")
    private java.lang.Integer delFlag;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
    /**订单状态*/
    @Excel(name = "订单状态", width = 15)
    @ApiModelProperty(value = "订单状态")
    private HcOrderStateEnum state;
    /**用户id*/
    @Excel(name = "用户id", width = 15)
    @ApiModelProperty(value = "用户id")
    private java.lang.String userId;
    /**订单编号*/
    @Excel(name = "订单编号", width = 15)
    @ApiModelProperty(value = "订单编号")
    private java.lang.String orderNum;

    @ApiModelProperty(value = "取餐序号")
    private java.lang.Integer pickingSerialNo;

    @ApiModelProperty(value = "菜单id")
    private String detailsId;

    @ApiModelProperty(value = "金额")
    @TableField(exist = false)
    private BigDecimal cost;

    @ApiModelProperty(value = "提交时间")
    @TableField(exist = false)
    private String submissionTime;


    @TableField(exist = false)
    private List<CompanyOrderDao> companyOrderDaos;
    /**导出订单状态*/
    @TableField(exist = false)
    @ApiModelProperty(value = "导出订单状态")
    private String exportState;

}
